1N = 5
 2
 3def aqcuire():
 4  while heap.lock != 0:
 5    sys_sched()
 6  heap.lock = 1
 7
 8def release():
 9  heap.lock = 0
10
11def Worker():
12  aqcuire()
13  sys_sched()
14  if heap.tot == 0:
15    heap.tot += 1
16  sys_sched()
17  release()
18  heap.finished += 1
19
20def main():
21  heap.finished = 0
22  heap.tot = 0
23  heap.lock = 0
24  for i in range(N):
25    sys_spawn(Worker)
26  while heap.finished < N:
27    sys_sched()
28  sys_write(f'Bought {heap.tot} bread.')
29
30# Outputs:
31# Bought 1 bread.